﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Design;

namespace SimpleSamplesXNA
{
    public static class GloabalStates
    {
        public enum CurrentGameStateenum//what state game system is in
        {
            Menu,
            LevelOne,
            LevelTwo
        }

        public static CurrentGameStateenum currentGameState = CurrentGameStateenum.Menu;



        public enum MenuState//what state the menu system is in
        {
            MainMenu,
            Settings,
            PaintPicker,
            GamePlay
        }
        public static MenuState gameMenuState = MenuState.GamePlay;//1 is the default,3 is the object picker, 2 is settings


        public static float shrinkFactor = 1;//the factor objects in game are shrunk to appear normal


        public enum ChosenPaintenum
        {
            Spere,
            Platform,
            Edge
        }

        public static ChosenPaintenum chosenPaint = ChosenPaintenum.Spere;

        //used for objects with two vector points
        public struct platformConstruct
        {
            public Vector2 Origin;
            public Vector2 EndPoint;
            public bool active;//if it is being drawn to screen
        }

        public static platformConstruct platformData = new platformConstruct() { EndPoint = new Vector2(0,0)};

        public static platformConstruct edgeData = new platformConstruct() { EndPoint = new Vector2(0,0)};


        public enum LevelStates
        {
            Play,
            Win,
            Loose
        }

        public static LevelStates levelStates = LevelStates.Play;

        public static bool levelOneEdgesDrawn = false;


        public struct PerformanceData
        {
            public string cpu;
            public string mem;
            public bool MonitorPerformance;
        }

        public static PerformanceData performanceData = new PerformanceData();


    }
}
